# -*- coding: utf-8 -*-
import os

from PyQt4.QtCore import QObject, SIGNAL, SLOT, QString, Qt
from PyQt4.QtGui import *

from config.preferences import SYSTEM, SRC_PATH

try:
    _fromUtf8 = QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class ActionsUiMenuAddProduto():

    def __init__(self, uiMenuAddProduto, db):
        """
        
        """
        self.uiMenuAddProduto = uiMenuAddProduto
        self.db = db
        self.connectSlot()



    def connectSlot(self):
        """
        
        """
        QObject.connect(
                        self.uiMenuAddProduto.comboBox,
                        SIGNAL("currentIndexChanged(int)"),
                        self.comboBoxFaixa)
        QObject.connect(
                        self.uiMenuAddProduto.pushButtonAddNewDb,
                        SIGNAL("clicked()"),
                        self.pushButtonAddNewDb)



    def comboBoxFaixa(self):
        """
        
        """
        faixa = self.uiMenuAddProduto.comboBox.currentText()



    def pushButtonAddNewDb(self):
        """
        
        """
        faixa = str(self.uiMenuAddProduto.comboBox.currentText())
        produto = str(self.uiMenuAddProduto.lineEditProduto.text())
        radical = str(self.uiMenuAddProduto.lineEditRadical.text())
        serial = str(self.uiMenuAddProduto.lineEditSerial.text())
        
        if produto == "":
            QMessageBox.critical(
                                 None,
                                 " TSM ",
                                 _fromUtf8(
                                 "Campo em Branco."))
        elif radical == "":
            QMessageBox.critical(
                                 None,
                                 " TSM ",
                                 _fromUtf8(
                                 "Campo em Branco."))
        elif serial == "":
            QMessageBox.critical(
                                 None,
                                 " TSM ",
                                 _fromUtf8(
                                 "Campo em Branco."))
        
        else:
            produtosCadastrados = self.db.produtosCadastrados()
            i = 0
            for prod in produtosCadastrados:
                if prod == produto:
                    i = 1
                    QMessageBox.critical(
                                         None,
                                         " TSM ",
                                         _fromUtf8(
                                         "Produto ja Cadastrado."))
                else:
                    pass
            if i == 0:
                self.db.cadastrarNovoProduto(faixa, produto, radical, serial)
                QMessageBox.information(
                                        None,
                                        " TSM ",
                                        _fromUtf8(
                                        "Produto Cadastrado com Sussesso."))
                self.criarDiretorio()
                self.uiMenuAddProduto.lineEditProduto.clear()
                self.uiMenuAddProduto.lineEditRadical.clear()
                self.uiMenuAddProduto.lineEditSerial.clear()
            else:
                pass



    def criarDiretorio(self):
        """
        
        """
        produto = str(self.uiMenuAddProduto.lineEditProduto.text())
        if SYSTEM == "linux2":
            os.mkdir(SRC_PATH + "/tmp/dados/" + produto)
            os.mkdir("/home/fabio/workspace/dados/tmp/" + produto)
            os.mkdir("/home/fabio/workspace/dados/dataBase/" + produto)
        else:
            pass
